<script>
     /*
            三、关键补充：  如何控制播种时机 、避免重复？

                                    <1>、禁用项目启动时的播种  (推荐生产环境)

                                                为了轻质通过 DbMigrator 播种，避免启动时冗余执行，可在Web项目的模块类中禁用启动时播种:

                                                        [DependsOn( 依赖模块 )]
                                                        public class YourProjectNameWebModule : AbpModule
                                                        {
                                                            public override void ConfigureServices(ServiceConfigurationContext context)
                                                            {
                                                                // 禁用 Web 启动时的数据播种（仅保留 DbMigrator 中的播种）
                                                                Configure<AbpDataSeederOptions>(options =>
                                                                {
                                                                    options.SkipOnStartup = true; // 关键配置：启动时不执行播种
                                                                });
                                                            }
                                                        }

                                    <2>、播种时的重复判断  (必加逻辑)

                                                无论哪种时机，SeedAsync 中必须添加  "数据是否已存在"的判断。  (之前角色播种时的 FirstOrDefaultAsync)

                                                原因：

                                                    ①、ABP仅记录 "是否执行过播种"，不记录 "具体数据是否已插入"；

                                                    ②、若手动删除模条播种数据，重新执行播种需能补插；

                                                    ③、避免多次运行DbMigrator 导致数据重复  (如重复创建同一个角色)。

                                    <3>、多租户场景的播种

                                                若你的SaaS团餐系统支持多租户，播种时需区分 "宿主租户" 和 "租户"：

                                                    public async Task SeedAsync(DataSeedContext context)
                                                    {
                                                        // 宿主租户播种（全局配置、系统角色等）
                                                        await SeedHostDataAsync(context);
                                                        
                                                        // 特定租户播种（如默认租户的初始数据）
                                                        if (context.TenantId == null)
                                                        {
                                                            await SeedTenantDataAsync(Guid.Parse("租户ID"));
                                                        }
                                                    }
*/

</script>